//== Class Definition
var SnippetLogin = function() {
var login = $('#m_login');
var showErrorMsg = function(form, type, msg) {
var alert = $('
\
\
\
');
form.find('.alert').remove();
alert.prependTo(form);
//alert.animateClass('fadeIn animated');
mUtil.animateClass(alert[0], 'fadeIn animated');
alert.find('span').html(msg);
}
//== Private Functions
var displaySignUpForm = function() {
login.removeClass('m-login--forget-password');
login.removeClass('m-login--signin');
login.removeClass('m-login--resend-activation');
login.removeClass('m-login--login-firsttime');
login.addClass('m-login--signup');
mUtil.animateClass(login.find('.m-login__signup')[0], 'flipInX animated');
}
var displaySignInForm = function() {
login.removeClass('m-login--forget-password');
login.removeClass('m-login--signup');
login.removeClass('m-login--resend-activation');
login.removeClass('m-login--login-firsttime');
login.addClass('m-login--signin');
mUtil.animateClass(login.find('.m-login__signin')[0], 'flipInX animated');
//login.find('.m-login__signin').animateClass('flipInX animated');
}
var displayForgetPasswordForm = function() {
login.removeClass('m-login--signin');
login.removeClass('m-login--signup');
login.removeClass('m-login--resend-activation');
login.removeClass('m-login--login-firsttime');
login.addClass('m-login--forget-password');
//login.find('.m-login__forget-password').animateClass('flipInX animated');
mUtil.animateClass(login.find('.m-login__forget-password')[0], 'flipInX animated');
}
var displayResendActivationLinkForm = function () {
login.removeClass('m-login--signin');
login.removeClass('m-login--signup');
login.removeClass('m-login--forget-password');
login.removeClass('m-login--login-firsttime');
login.addClass('m-login--resend-activation');
//login.find('.m-login__forget-password').animateClass('flipInX animated');
mUtil.animateClass(login.find('.m-login__resend-activation')[0], 'flipInX animated');
}
var displayLoginFirstTimeForm = function () {
login.removeClass('m-login--signin');
login.removeClass('m-login--signup');
login.removeClass('m-login--forget-password');
login.removeClass('m-login--resend-activation');
login.addClass('m-login--login-firsttime');
//login.find('.m-login__forget-password').animateClass('flipInX animated');
mUtil.animateClass(login.find('.m-login__login-firsttime')[0], 'flipInX animated');
}
var handleFormSwitch = function () {
$('#m-login_firsttime').click(function (e) {
e.preventDefault();
displayLoginFirstTimeForm();
});
$('#m_login_forget_password').click(function(e) {
e.preventDefault();
displayForgetPasswordForm();
});
$('#m-login_resendactivation').click(function (e) {
console.log("dah click");
e.preventDefault();
displayResendActivationLinkForm();
});
$('#m_login_login_firsttime_cancel').click(function(e) {
e.preventDefault();
displaySignInForm();
});
$('#m_login_forget_password_cancel').click(function (e) {
e.preventDefault();
displaySignInForm();
});
$('#m_login_resend_activation_cancel').click(function (e) {
e.preventDefault();
displaySignInForm();
});
$('#m_login_signup').click(function(e) {
e.preventDefault();
displaySignUpForm();
});
$('#m_login_signup_cancel').click(function(e) {
e.preventDefault();
displaySignInForm();
});
}
var handleSignInFormSubmit = function() {
$('#m_login_signin_submit').click(function(e) {
e.preventDefault();
var btn = $(this);
var form = $(this).closest('form');
form.validate({
rules: {
email: {
required: true,
email: true
},
password: {
required: true
}
}
});
if (!form.valid()) {
return;
}
btn.addClass('m-loader m-loader--right m-loader--light').attr('disabled', true);
form.ajaxSubmit({
url: '',
success: function(response, status, xhr, $form) {
// similate 2s delay
setTimeout(function() {
btn.removeClass('m-loader m-loader--right m-loader--light').attr('disabled', false);
showErrorMsg(form, 'danger', 'Incorrect username or password. Please try again.');
}, 2000);
}
});
});
}
var handleSignUpFormSubmit = function() {
$('#m_login_signup_submit').click(function(e) {
e.preventDefault();
var btn = $(this);
var form = $(this).closest('form');
form.validate({
rules: {
fullname: {
required: true
},
email: {
required: true,
email: true
},
password: {
required: true
},
rpassword: {
required: true
},
agree: {
required: true
}
}
});
if (!form.valid()) {
return;
}
btn.addClass('m-loader m-loader--right m-loader--light').attr('disabled', true);
form.ajaxSubmit({
url: '',
success: function(response, status, xhr, $form) {
// similate 2s delay
setTimeout(function() {
btn.removeClass('m-loader m-loader--right m-loader--light').attr('disabled', false);
form.clearForm();
form.validate().resetForm();
// display signup form
displaySignInForm();
var signInForm = login.find('.m-login__signin form');
signInForm.clearForm();
signInForm.validate().resetForm();
showErrorMsg(signInForm, 'success', 'Thank you. To complete your registration please check your email.');
}, 2000);
}
});
});
}
var handleForgetPasswordFormSubmit = function() {
$('#m_login_forget_password_submit').click(function(e) {
e.preventDefault();
var btn = $(this);
var form = $(this).closest('form');
form.validate({
rules: {
email: {
required: true,
email: true
}
}
});
if (!form.valid()) {
return;
}
btn.addClass('m-loader m-loader--right m-loader--light').attr('disabled', true);
form.ajaxSubmit({
url: '',
success: function(response, status, xhr, $form) {
// similate 2s delay
setTimeout(function() {
btn.removeClass('m-loader m-loader--right m-loader--light').attr('disabled', false); // remove
form.clearForm(); // clear form
form.validate().resetForm(); // reset validation states
// display signup form
displaySignInForm();
var signInForm = login.find('.m-login__signin form');
signInForm.clearForm();
signInForm.validate().resetForm();
showErrorMsg(signInForm, 'success', 'Cool! Password recovery instruction has been sent to your email.');
}, 2000);
}
});
});
}
//== Public Functions
return {
// public functions
init: function() {
handleFormSwitch();
handleSignInFormSubmit();
handleSignUpFormSubmit();
handleForgetPasswordFormSubmit();
}
};
}();
//== Class Initialization
jQuery(document).ready(function() {
SnippetLogin.init();
});